﻿/***********************************************************************************************
 * 
 * ProjectName: WMSSoft.Lib.WinKStart
 * 
 * Description: Provides Members needed to configure Startmenu from XML File
 * 
 * Created:     07.01.2014
 * 
 * Author:      matthias wagler - matthias@WMSSoft.de
 * 
 * Copyright:   Copyright 2012 by WMSSoft.net
 * 
 * License:     GPLv3
 * 
 * History:     07.01.2014 - matthias wagler matthias@WMSSoft.de    -   Created
 * 
 **********************************************************************************************/
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Media;
using WMSSoft.Lib.Enums;
using WMSSoft.Lib.WinKStart.Abstract;

namespace WMSSoft.Lib.WinKStart.Model.MenuConfig
{

    public class MinimizeablePanel : CModelBase
    {
        private PanelOpenedStyle _DefaultOpenedPanelStyle = PanelOpenedStyle.Expanded;
        private eContentPanelContentType _ContentType = eContentPanelContentType.None;
        eItemType _Itemtype = eItemType.Link;

        private string _Caption = "";
        private string _PanelID = "";
        private string _DataSource = "";
        private string _Filter = "";

        private int _MaxViewedElements = 5;

        private bool _CanCollapsExpand = true;
        private bool _CloseIfOpenOtherPanel = false;
        private bool _CanNavigate = false;
        private bool _SortItems = false;

        public eItemType ItemType
        {
            get { return _Itemtype; }
            set 
            { 
                _Itemtype = value;
                OnPropertyChanged();
            }
        }

        public string Caption
        {
            get { return _Caption; }
            set 
            { 
                _Caption = value;
                OnPropertyChanged();
            }
        }

        public int MaxViewedElements
        {
            get { return _MaxViewedElements; }
            set 
            { 
                _MaxViewedElements = value;
                OnPropertyChanged();
            }
        }

        public string PanelID
        {
            get { return _PanelID; }
            set 
            { 
                _PanelID = value;
                OnPropertyChanged();
            }
        }

        public bool CanCollapsExpand
        {
            get { return _CanCollapsExpand; }
            set 
            { 
                _CanCollapsExpand = value;
                OnPropertyChanged();
            }
        }

        public PanelOpenedStyle DefaultOpenedPanelStyle
        {
            get { return _DefaultOpenedPanelStyle; }
            set 
            { 
                _DefaultOpenedPanelStyle = value;
                OnPropertyChanged();
            }
        }

        public bool CloseIfOpenOtherPanel
        {
            get { return _CloseIfOpenOtherPanel; }
            set 
            { 
                _CloseIfOpenOtherPanel = value;
                OnPropertyChanged();
            }
        }

        public eContentPanelContentType ContentType
        {
            get { return _ContentType; }
            set 
            { 
                _ContentType = value;
                OnPropertyChanged();
            }
        }

        public string DataSource
        {
            get { return _DataSource; }
            set 
            { 
                _DataSource = value;
                OnPropertyChanged();
            }
        }

        public string Filter
        {
            get { return _Filter; }
            set 
            { 
                _Filter = value;
                OnPropertyChanged();
            }
        }

        public  bool CanNavigate
        {
            get { return _CanNavigate; }
            set 
            { 
                _CanNavigate = value;
                OnPropertyChanged();
            }
        }

        public bool SortItems
        {
            get { return _SortItems; }
            set 
            { 
                _SortItems = value;
                OnPropertyChanged();
            }
        }
    }

}
